IF exists(SELECT * FROM dbo.sysobjects WHERE name='toevoegenGestartVerlaten' AND xtype='P') 
BEGIN
	DROP PROCEDURE toevoegenGestartVerlaten
END
GO

CREATE  procedure toevoegenGestartVerlaten
(@schooljaar varchar(4),@schoolNr char(6))
as
-- Overbrengen van alle scholen (als die nog niet toegevoegd waren)
insert into gestartVerlaten(inschrijvingsNr,schoolNummer)
select h.inschrijvingsNr,h.schoolnummer
from (select distinct schoolnummer,inschrijvingsNr
	from historiek
	group by schoolnummer,inschrijvingsNr) as h
  left join gestartVerlaten as g on
    g.inschrijvingsNr = h.inschrijvingsNr and
    g.schoolnummer = h.schoolnummer
where g.schoolnummer is null 

-- Overbrengen van de vroegste startdatum.

declare @datum datetime

update gestartVerlaten
set gestart = h.eersteDag
from (select distinct schoolnummer,inschrijvingsNr,
	min(datum) as eersteDag from historiek
	group by schoolnummer,inschrijvingsNr) as h
  left join gestartVerlaten as g on
  g.inschrijvingsNr = h.inschrijvingsNr and
  g.schoolnummer = h.schoolnummer


-- Overbrengen van de vorige instelling en/of klas.
------- De inschrijvingsNummers en de startdatums van de leerlingen 
------- van het behandeld stamboek worden in een hulptabel gestopt.

create table #huidig(
iNr varchar(7),
schoolNr char(6),
datum datetime)

insert #huidig(iNr,schoolNr,datum)
select distinct g.inschrijvingsNr,g.schoolnummer,g.gestart
from gestartVerlaten as g 
        left join historiek as h
	on h.inschrijvingsNr = g.inschrijvingsNr
where g.schoolnummer = @schoolNr
      and left(h.stamboekNr,2) = right(@schooljaar,2)

------- De inschrijvingsNummers en de vorige startdatums van de lln 
------- van het behandeld stamboek worden in een hulptabel gestopt.

create table #vorige(
iNr varchar(7),datum datetime,
schoolNr char(6),klas varchar(5))

insert #vorige(iNr,datum)
select distinct h.iNr,max(hist.datum)
from #huidig as h
       left join historiek as hist
       on hist.inschrijvingsNr = h.iNr
	  and hist.datum < h.datum
group by h.iNr 
 
------- De bijhorende klas en schoolnummer worden toegevoegd. 

update #vorige
set schoolNr = hist.schoolNummer,
    klas = hist.klas
from #vorige as v
     left join historiek as hist
       on hist.datum = v.datum
	and hist.inschrijvingsNr = v.iNr

update gestartVerlaten
set 
    vorigeInstelling = 	
      case when v.datum is null then l.lagereSchool
	else s.benaming
	end,
    vorigLeerjaar =
      case when v.datum is null then '6de leerjaar'
	else v.klas
        end
from gestartVerlaten as g
  	left join #vorige as v
    	  on g.inschrijvingsNr = v.iNr
	left join alleGestarteLln as l
	  on l.inschrijvingsNr = v.iNr
	left join scholen as s
	  on s.schoolNummer = v.schoolNr
where vorigeInstelling is null 
	and g.schoolNummer = @schoolNr 
	  and not v.iNr is null